package 炫彩元素类

import (
	xc "gitee.com/go_888/xcgui/xcgui/xc"
	xcc "gitee.com/go_888/xcgui/xcgui/xcc"
)

// X结构_布局框架 布局框架.
type X结构_布局框架 struct {
	X结构_滚动视图
}

// NewLayoutFrame 布局框架_创建.
//
// x: 元素x坐标.
//
// y: 元素y坐标.
//
// cx: 宽度.
//
// cy: 高度.
//
// hParent: 父为窗口句柄或元素句柄.
func X创建布局框架(元素x坐标, 元素y坐标, 宽度, 高度 int32, 父窗口句柄 int) *X结构_布局框架 {
	p := &X结构_布局框架{}
	p.X设置句柄(xc.X布局框架_创建(元素x坐标, 元素y坐标, 宽度, 高度, 父窗口句柄))
	return p
}

// NewLayoutFrameByHandle 从句柄创建对象.
//
// handle: 布局框架句柄.
func X创建布局框架并按句柄(句柄 int) *X结构_布局框架 {
	p := &X结构_布局框架{}
	p.X设置句柄(句柄)
	return p
}

// NewLayoutFrameByName 从name创建对象, 失败返回nil.
//
// name: name名称.
func X创建布局框架并按名称(名称 string) *X结构_布局框架 {
	handle := xc.X取对象并按名称(名称)
	if handle > 0 {
		p := &X结构_布局框架{}
		p.X设置句柄(handle)
		return p
	}
	return nil
}

// NewLayoutFrameByUID 从UID创建对象, 失败返回nil.
//
// nUID: ID值.
func X创建布局框架并按UID(UID int32) *X结构_布局框架 {
	handle := xc.X取对象并按UID(UID)
	if handle > 0 {
		p := &X结构_布局框架{}
		p.X设置句柄(handle)
		return p
	}
	return nil
}

// NewLayoutFrameByUIDName 从UID名称创建对象, 失败返回nil.
//
// name: name名称.
func X创建布局框架并按UID名称(名称 string) *X结构_布局框架 {
	handle := xc.X取对象并按UID名称(名称)
	if handle > 0 {
		p := &X结构_布局框架{}
		p.X设置句柄(handle)
		return p
	}
	return nil
}

// ShowLayoutFrame 布局框架_显示布局边界.
//
// bEnable: 是否启用.
func (l *X结构_布局框架) X显示布局边界(启用 bool) *X结构_布局框架 {
	xc.X布局框架_显示布局边界(l.X句柄, 启用)
	return l
}

/*
LayoutBox-布局盒子
*/

// EnableHorizon 布局盒子_启用水平.
//
// bEnable: 是否启用.
func (l *X结构_布局框架) X启用水平(启用 bool) *X结构_布局框架 {
	xc.X布局盒子_启用水平(l.X句柄, 启用)
	return l
}

// EnableAutoWrap 布局盒子_启用自动换行.
//
// bEnable: 是否启用.
func (l *X结构_布局框架) X启用自动换行(启用 bool) *X结构_布局框架 {
	xc.X布局盒子_启用自动换行(l.X句柄, 启用)
	return l
}

// EnableOverflowHide 布局盒子_启用溢出隐藏.
//
// bEnable: 是否启用.
func (l *X结构_布局框架) X启用溢出隐藏(启用 bool) *X结构_布局框架 {
	xc.X布局盒子_启用溢出隐藏(l.X句柄, 启用)
	return l
}

// SetAlignH 布局盒子_置水平对齐.
//
// nAlign: 对齐方式: xcc.Layout_Align_.
func (l *X结构_布局框架) X设置水平对齐(对齐方式 xcc.X布局对齐) *X结构_布局框架 {
	xc.X布局盒子_设置水平对齐(l.X句柄, 对齐方式)
	return l
}

// SetAlignV 布局盒子_置垂直对齐.
//
// nAlign: 对齐方式: xcc.Layout_Align_.
func (l *X结构_布局框架) X设置垂直对齐(对齐方式 xcc.X布局对齐) *X结构_布局框架 {
	xc.X布局盒子_设置垂直对齐(l.X句柄, 对齐方式)
	return l
}

// SetAlignBaseline 布局盒子_置对齐基线.
//
// nAlign: 对齐方式: xcc.Layout_Align_Axis_.
func (l *X结构_布局框架) X设置对齐基线(对齐方式 xcc.X布局轴对齐) *X结构_布局框架 {
	xc.X布局盒子_设置对齐基线(l.X句柄, 对齐方式)
	return l
}

// SetSpace 布局盒子_置间距.
//
// nSpace: 项间距大小.
func (l *X结构_布局框架) X设置间距(项间距大小 int32) *X结构_布局框架 {
	xc.X布局盒子_设置间距(l.X句柄, 项间距大小)
	return l
}

// SetSpaceRow 布局盒子_置行距.
//
// nSpace: 行间距大小.
func (l *X结构_布局框架) X设置行距(行间距大小 int32) *X结构_布局框架 {
	xc.X布局盒子_设置行距(l.X句柄, 行间距大小)
	return l
}
